iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

Day 07 如何使用 SDK (Part 2)

筆者在文件內寫的程式碼範例,肯定沒辦法涵蓋到所有的使用情境,這時候我們就會需要查看 Reference 文件,今天的文章就是來介紹這個。

閱讀 TypeDoc 文件

筆者有幫這個專案使用 TypeDoc 自動產生 SDK 的 Reference 文件,文件網址在 https://taichunmin.idv.tw/chameleon-ultra.js/

接下來我們要去看 ChameleonUltra 的核心文件,請在左邊側邊欄點擊 「index」➜「ChameleonUltra」(文件會更新,有可能跟下圖有差異):

然後文件往下看,應該就可以看到筆者有貼心的幫這些指令分類:

讀取卡號

接下來我們來嘗試使用 ChameleonUltra 來讀取卡號。

在使用任何讀卡指令之前,我們需要先啟動讀卡機模式,你可以從文件上找到 cmdChangeDeviceMode 指令:

點擊 cmdChangeDeviceMode 的連結之後,你可以看到這個 SDK 需要什麼輸入以及會回傳什麼:

點擊參數 modeDeviceMode 型別上的連結之後,你可以看到這個 SDK 支援哪些模式:

於是我們就可以使用以下的程式碼來切換成讀卡機模式:

const { ChameleonUltra, DeviceMode, WebserialAdapter } = window.ChameleonUltraJS

const ultra = new ChameleonUltra()
ultra.use(new WebserialAdapter())
await ultra.cmdChangeDeviceMode(DeviceMode.READER)

成功切換成讀卡機模式後,我們就可以使用 cmdHf14aScan 來讀取 HF 卡片的 UID,在文件中可以看到這個 SDK 不需要帶參數,然後回傳值是 Promise<Hf14aTag>

我們可以點擊 Hf14aAntiColl 這個型別的連結,看看這個型別有哪些屬性:

如果我們往下看,就可以看到每個屬性的資料形態跟說明:

於是我們就可以使用以下的程式碼來讀取卡片的 UID:

const { ChameleonUltra, DeviceMode, WebserialAdapter } = window.ChameleonUltraJS

const ultra = new ChameleonUltra()
ultra.use(new WebserialAdapter())
await ultra.cmdChangeDeviceMode(DeviceMode.READER)
const tag = await ultra.cmdHf14aScan()
console.log(`uid = ${tag.uid.toString('hex')}`)
console.log(`atqa = ${tag.atqa.reverse().toString('hex')}`)
console.log(`sak = ${tag.sak.toString('hex')}`)

以下是實際的執行結果:

參考資料


上一篇
Day 06 如何使用 SDK (Part 1)
下一篇
Day 08 如何使用 SDK (Part 3)
系列文
用 Web Serial/Bluetooth 來控制 ChameleonUltra 硬體30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言